package CountWords;

import java.util.*;

public class CountOccurrenceOfWords {
    public static void main(String[] args) {
        // 在字符串中设置文本
        String text = "Good morning. Have a good class. " + "Have a good visit. Have fun!";

        // 创建一个树形图，将单词作为关键字，并将其计算为值
        Map<String, Integer> map=new TreeMap<>();

        String[] words = text.split("[ \n\t\r.，；：！？(){}]"); // 以这些符号为分割符
        for (int i = 0; i< words.length;i++){
            String key = words[i].toLowerCase();  // toLowerCase()用于把字符串转小写

            if (key.length()>0){
                if (!map.containsKey(key)){ // 检测映射表中是否包含指定键的条目
                    map.put(key,1);  // 调用map里的put方法存指定键，
                }
                else{
                    int value = map.get(key);
                    value++;
                    map.put(key,value);  // 存键存值
                }
            }
        }

        // 将所有条目放入一个集合
        Set<Map.Entry<String,Integer>> entrySet = map.entrySet();

        // 从每个条目中获取密钥和值
        for (Map.Entry<String,Integer>entry: entrySet)
            System.out.println(entry.getKey()+"\t"+entry.getValue());
    }
}
